package org.swim.entity;

import java.io.Serializable;
import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.SequenceGenerator;
import javax.persistence.GeneratedValue;

@Entity
@Table(name="richiesteAiuto")
@SequenceGenerator(name="HELPREQUEST_SEQUENCE", sequenceName="HR_SEQ", allocationSize = 1, initialValue=1)
public class HelpRequests implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@Column(name="idRichiesteAiuto")
	@GeneratedValue(strategy=GenerationType.AUTO, generator="HELPREQUEST_SEQUENCE")
	private int idRichiesta;
	
	@ManyToOne
	@JoinColumn(name="mittente", referencedColumnName="idUtente")
	private User mittente;
	
	@ManyToOne
	@JoinColumn(name="destinatario", referencedColumnName="idUtente")
	private User destinatario;
	
	@Column(name="dataInvio")	
	private Date dataInvio;
	
	@Column(name="dataAccettazione")	
	private Date dataAccettazione;
	
	@Column(name="completata")	
	private boolean completata;
	
	@Column(name="feedback")	
	private String feedback;

	@Column(name="testo")	
	private String testo;
	
	
	

	@ManyToOne
	@JoinColumn(name="abilita", referencedColumnName="idAbilita")
	private Ability ability;
	

	public int getIdRichiesta() {
		return idRichiesta;
	}
	public void setIdRichiesta(int idRichiesta) {
		this.idRichiesta = idRichiesta;
	}
	
	public User getMittente() {
		return mittente;
	}
	public void setMittente(User mittente) {
		this.mittente = mittente;
	}
	
	public User getDestinatario() {
		return destinatario;
	}
	public void setDestinatario(User destinatario) {
		this.destinatario = destinatario;
	}
	
	public Date getDataInvio() {
		return dataInvio;
	}
	public void setDatainvio(Date datainvio) {
		this.dataInvio = datainvio;
	}
	
	public Date getDataAccettazione() {
		return dataAccettazione;
	}
	public void setDataAccettazione(Date dataAccettazione) {
		this.dataAccettazione = dataAccettazione;
	}
	
	public boolean isCompletata() {
		return completata;
	}
	public void setCompletata(boolean completata) {
		this.completata = completata;
	}
	
	public String getFeedback() {
		return feedback;
	}
	public void setFeedback(String feedback) {
		this.feedback = feedback;
	}
	
	public String getTesto() {
		return testo;
	}
	public void setTesto(String text) {
		this.testo = text;
	}
	
	public Ability getAbilita() {
		return ability;
	}
	public void setAbilita(Ability ability) {
		this.ability = ability;
	}
}
